Telephone systems and telephone service providers offer a wide range of voice communication services, including call answering, voice messaging, and automated attendant services. With the trend towards combining voice communications with non-voice electronic communications (e.g., email, IM, SMS, facsimile), unified messaging systems have emerged. In unified messaging systems, multiple types of communication services are available to a subscriber. For example, a subscriber's voice, facsimile, email, IM, SMS, and other messages may be stored on such a system and made available to the subscriber upon request. The subscriber may be able to log into such system from a remote location, and receive (e.g., view, listen to) voice and electronic messages, as well as send electronic messages and originate telephone calls from the system. The system may also include groupware applications. (“Groupware” generally refers to applications that enable collaboration of a group of subscribers, such as employees of a company; groupware may provide services for communication including email, contact management, and scheduling.) The system may also include additional capabilities intended to facilitate communications with the subscriber when the subscriber is connected to the system remotely through a telephone network. For example, the system may include a text-to-speech converter for reading to the remotely-connected subscriber stored facsimile and email messages.
The system may include multiple “nodes” in different geographic locations, for example, in different areas of a building, different buildings, different cities, different states, or even different countries. Multiple nodes may also be physically located in the same place. The nodes are interconnected. Each of the nodes may be configured to provide messaging services (e.g., receiving, creating, sending messages) to a particular subgroup of its associated subscribers and possibly to other subscribers, for example, to the particular subgroup at the same geographical location as the physical location of the node. Configuration information and subscriber data are typically stored on a core node (as distinguished from other, non-core nodes). When the core node is down, for example, because of maintenance and hardware or software failures, normal processing of calls and other messages may be disrupted.
Scaling the system up by increasing the number of nodes tends to slow down message processing in the system, and particularly processing of messages within the core.
A need exists in the art to improve reliability of messaging systems when core nodes become unavailable, and to make such system more scalable.